package com.tianji.learning.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.tianji.common.domain.dto.PageDTO;
import com.tianji.learning.domain.po.UserNote;
import com.tianji.learning.domain.query.AdminNotesQuery;
import com.tianji.learning.domain.query.NotesQuery;
import com.tianji.learning.domain.vo.AdminNotesVO;
import com.tianji.learning.domain.vo.NotesVO;

import com.tianji.learning.domain.dto.EditNoteDTO;
import com.tianji.learning.domain.dto.NoteDTO;
import org.springframework.transaction.annotation.Transactional;


/**
 * <p>
 *  服务类
 * </p>
 *
 * @author lang
 * @since 2023-04-26
 */
public interface IUserNoteService extends IService<UserNote> {


    PageDTO<AdminNotesVO> adminQueryNotesByPage(AdminNotesQuery notesQuery);

    PageDTO<NotesVO> queryNotesByPage(NotesQuery notesQuery, boolean isMe);
    
    void createNote(NoteDTO dto);

    void editNoteById(Long id, EditNoteDTO dto);

    void deleteNoteById(Long id);

    @Transactional
    void gatherNote(Long id);

    @Transactional
    void deleteGatherNote(Long id);
}
